/*
Copyright © 2022 NAME HERE <EMAIL ADDRESS>
*/
package cmd

import (
	"fmt"

	"strconv"

	devices "gitee.com/zinface/gpio-ctl/pkg/gpio"
	"github.com/spf13/cobra"
)

// infoCmd represents the info command
var infoCmd = &cobra.Command{
	Use:   "info",
	Short: _desc_info,
	Long:  ``,
	Run: func(cmd *cobra.Command, args []string) {

		// 获取第一个参数
		id, err := strconv.Atoi(args[0])
		if err != nil {
			panic(err)
		}

		// 尝试读取设备的值
		gpio := devices.NewGPIODevice(id)
		// if gpio.IsExported() {
		gexported := gpio.IsExported()
		gmode, _ := gpio.Mode()
		gedge, _ := gpio.Edge()
		gvalue, _ := gpio.Value()

		fmt.Println("Exported:", gexported)
		fmt.Println("    Mode:", gmode)
		fmt.Println("    Edge:", gedge)
		fmt.Println("   Value:", gvalue)
		// }
	},
}

func init() {
	rootCmd.AddCommand(infoCmd)

	// Here you will define your flags and configuration settings.

	// Cobra supports Persistent Flags which will work for this command
	// and all subcommands, e.g.:
	// infoCmd.PersistentFlags().String("foo", "", "A help for foo")

	// Cobra supports local flags which will only run when this command
	// is called directly, e.g.:
	// infoCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
}
